The _mmmm_aaaa_xxxx_llll_eeee_nnnn [see _nnnn_eeee_tttt_bbbb_uuuu_ffff in _iiii_nnnn_tttt_rrrr_oooo(3N)] field of _aaaa_dddd_dddd_rrrr, _oooo_pppp_tttt, and _uuuu_dddd_aaaa_tttt_aaaa must
be set before issuing this function to indicate the maximum size of the
buffer for each.
On return from this call, _aaaa_dddd_dddd_rrrr specifies the protocol address of the
sending user, _oooo_pppp_tttt identifies protocol-specific options that were
associated with this data unit, and _uuuu_dddd_aaaa_tttt_aaaa specifies the user data that
was received.
By default, _tttt______rrrr_cccc_vvvv_uuuu_dddd_aaaa_tttt_aaaa operates in synchronous mode and will wait for a
data unit to arrive if none is currently available. However, if _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY
or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK is set (via _tttt______oooo_pppp_eeee_nnnn or _ffff_cccc_nnnn_tttt_llll), _tttt______rrrr_cccc_vvvv_uuuu_dddd_aaaa_tttt_aaaa will execute in
asynchronous mode and will fail if no data units are available.
If the buffer defined in the _uuuu_dddd_aaaa_tttt_aaaa field of _uuuu_nnnn_iiii_tttt_dddd_aaaa_tttt_aaaa is not large enough
to hold the current data unit, the buffer will be filled and _TTTT______MMMM_OOOO_RRRR_EEEE will
be set in _ffff_llll_aaaa_gggg_ssss on return to indicate that another _tttt______rrrr_cccc_vvvv_uuuu_dddd_aaaa_tttt_aaaa should be
issued to retrieve the rest of the data unit. Subsequent _tttt______rrrr_cccc_vvvv_uuuu_dddd_aaaa_tttt_aaaa
call(s) will return zero for the length of the address and options until
the full data unit has been received.
This function resides within both the X/Open compliant _llll_iiii_bbbb_xxxx_nnnn_eeee_tttt and the
On failure, _tttt______eeee_rrrr_rrrr_nnnn_oooo may be set to one of the following:
_TTTT_BBBB_AAAA_DDDD_FFFF The specified file descriptor does not refer to a
transport endpoint.
_TTTT_NNNN_OOOO_DDDD_AAAA_TTTT_AAAA _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK was set, but no data units are
currently available from the transport provider.
_TTTT_BBBB_UUUU_FFFF_OOOO_VVVV_FFFF_LLLL_WWWW There are two different conditions in which _TTTT_BBBB_UUUU_FFFF_OOOO_VVVV_FFFF_LLLL_WWWW
will be returned. If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined _aaaa_nnnn_dddd
the number of bytes allocated for incoming data is
_gggg_rrrr_eeee_aaaa_tttt_eeee_rrrr _tttt_hhhh_aaaa_nnnn _zzzz_eeee_rrrr_oooo _aaaa_nnnn_dddd is not sufficient to store the
data. If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is _nnnn_oooo_tttt defined and the number
of bytes allocated for incoming data is not
sufficient to store the data. The unit data
information to be returned in _uuuu_nnnn_iiii_tttt_dddd_aaaa_tttt_aaaa will be
discarded.
_TTTT_LLLL_OOOO_OOOO_KKKK An asynchronous event has occurred on this transport
endpoint and requires immediate attention.
_TTTT_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP_PPPP_OOOO_RRRR_TTTT This function is not supported by the underlying
transport provider.
_TTTT_OOOO_UUUU_TTTT_SSSS_TTTT_AAAA_TTTT_EEEE If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined and _tttt______rrrr_cccc_vvvv_uuuu_dddd_aaaa_tttt_aaaa() is
issued in the wrong sequence on the transport
endpoint referenced by _ffff_dddd, the _TTTT_OOOO_UUUU_TTTT_SSSS_TTTT_AAAA_TTTT_EEEE error value
is returned within the variable _tttt______eeee_rrrr_rrrr_nnnn_oooo.
_TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR A system error has occurred during execution of this